﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Loja.Banco;
using Loja.Controles.Aplicação;
using Loja.Aplicação;
using System.Collections;
using Loja.Padrao;

namespace Loja.Telas
{
    public partial class ConsultaVenda : PadraoConsulta
    {
        private Controle controle;

        public ConsultaVenda(Controle controle)
        {
            this.controle = controle;
            InitializeComponent();
        }

        public void Pesquisa() 
        {
            var vendas = controle.ListarVenda(new DateTime(dtInicio.Value.Year, dtInicio.Value.Month, dtInicio.Value.Day, 00, 00, 00), new DateTime(dtFim.Value.Year, dtFim.Value.Month, dtFim.Value.Day, 23, 59, 59));
            if (vendas == null)
            {

                dgDados.DataSource = null;

            }
            else
            {
                dgDados.DataSource = vendas;
            }            

        }

        private void btnPesquisar_Click(object sender, EventArgs e)
        {
            Pesquisa(); 
        }
        
        private void btnAbrir_Click(object sender, EventArgs e)
        {
            Abrir();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                DialogResult dialogo = new DialogResult();
                dialogo = MessageBox.Show("Deseja ESTORNAR a Venda?", "Estorno de Venda", MessageBoxButtons.YesNo);
                if (dialogo.ToString() == "Yes")
                {
                    if (controle.ValidaCaixaVenda())
                    {
                        if (controle.VerificaVenda(Int32.Parse(dgDados.CurrentRow.Cells[0].Value.ToString())))
                        {

                            if (controle.EstornarVenda(Int32.Parse(dgDados.CurrentRow.Cells[0].Value.ToString())))
                            {
                                MessageBox.Show("Venda Estonada com sucesso!");
                                Pesquisa();

                            }
                            else
                                MessageBox.Show("Falha Interna ao estornar venda!");
                        }
                        else
                        {
                            MessageBox.Show("Está venda já foi ESTORNADA!");
                        }
                    }
                    else
                    {
                        MessageBox.Show("Não existe caixa aberto!"); 
                    }
                }
            }
            catch
            {
                MessageBox.Show("Não há Venda selecionada!");
            }

            dgDados.Refresh();

        }

        private void ConsultaVenda_Load(object sender, EventArgs e)
        {
            this.dtInicio.Value = DateTime.Now;
            this.dtFim.Value = DateTime.Now;
            Pesquisa(); 
        }

        public void Abrir()
        {
            try
            {
                FormVenda form = new FormVenda(controle, Int32.Parse(dgDados.CurrentRow.Cells[0].Value.ToString()));
                form.ShowDialog(this);
            }
            catch
            {
                MessageBox.Show("Não foram encontrada(s) Venda(s) para essa consulta!");
            }
        }
    }
}
